package com.ma.implatform.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ma.implatform.dto.GroupMessageDTO;
import com.ma.implatform.entity.GroupMessage;
import com.ma.implatform.vo.GroupMessageVO;

import java.util.List;

public interface GroupMessageService extends IService<GroupMessage> {
    /**
     * 发送群聊消息
     * @param dto
     * @return
     */
    GroupMessageVO sendMessage(GroupMessageDTO dto);

    /**
     * 撤回消息
     * @param id
     * @return
     */
    GroupMessageVO recallMessage(Long id);

    /**
     * 拉取离线消息，只能拉取最近1个月的消息，最多拉1000条
     * @param minId
     */
    void pullOfflineMessage(Long minId);

    /**
     * 拉取离线消息，只能拉取最近一个月消息
     * @param minId
     * @return
     */
    List<GroupMessageVO> loadOfflineMessage(Long minId);

    /**
     * 消息已读，同步其他终端，清空未读数量
     * @param groupId
     */
    void readedMessage(Long groupId);

    /**
     * 查询群里消息已读用户id列表
     * @param groupId
     * @param messageId
     * @return
     */
    List<Long> findReadedUsers(Long groupId,Long messageId);

    /**
     * 拉取历史聊天记录
     * @param groupId
     * @param page
     * @param size
     * @return
     */
    List<GroupMessageVO> findHistoryMessage(Long groupId,Long page,Long size);
}
